package com.itheima.controller.response;

import com.itheima.domain.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

/**
 * @author robin
 * @version 1.0
 * 学习目标：@ResponseBody作用以及使用
 * @ResponseBody作用:把数据放入到响应体。如果返回到是java对象，那么springmvc还需要对对象进行序列化。真正放入到响应体中的是序列化的数据。
 * @RestController: @RestController=@ResponseBody+@Controller,放在类中的时候，该类中所有方法返回的都是数据。
 * @RequestBody作用：当请求的发送的json数据，从请求中获取json数据。springmvc会对json数据反序列化成user对象。
 */
@RestController
public class ResponseBodyController {

    /**
     * @TODO 1.当前端请求http://localhost:8080/data1的时候，希望后端返回的是一个字符串“success”,该如何实现？
     */
    @RequestMapping(value = "/data1")
    //@ResponseBody
    public String data1() {
        return "success";
    }

    /**
     * @TODO 2.当前端请求http://localhost:8080/data2的时候，希望后端返回的是json数据，该如何实现呢？
     * 注意：如果你返回的对象数据，springmvc会检查是否存在jackson依赖，如果存在该依赖就会对User对象序列化json数据。才会真正将json字符串放入到响应体中
     */
    @RequestMapping(value = "/data2")
    //@ResponseBody
    public User data2() {
        return new User(1l, 18, "tom", new Date());
    }
}
